// 导入自定义工具模块
import {debounce} from './utils.js'

// 导入返回顶部按钮组件
import BackTop from 'components/content/backtop/BackTop'

import {POP, NEW, SELL} from "./const";

export const itenListenerMixin = {
  data() {
    return {
      itemImgLoadFn: null
    }
  },
  mounted() {
    // 监听图片加载完成事件  
    // 可以通过this.$bus.$on(‘aaa’)接受事件函数
    const refresh = debounce(this.$refs.scroll.refresh, 50)

    // 使用全局变量接收 全局事件处理函数 便于取消全局事件
    this.itemImgLoadFn = () => {
      refresh()
    }

    this.$bus.$on('imgLoad', this.itemImgLoadFn)
  }
}


export const BackTopMixin = {
  components: {
    BackTop
  },
  data() {
    return {
      isShowBackTop: false
    }
  },
  methods: {
    backTop() {
      // 调用子组件的 scrollTo 方法 返回顶部
      this.$refs.scroll.scrollTo(0, 0)
    },
    listenShowBackTop(postions) {
      // 1. 判断BackTop 是否显示
      this.isShowBackTop = -postions.y > 1000
    }
  }
}

export const tabControlMixin = {
	data: function () {
		return {
			currentType: POP
		}
	},
	methods: {
		tabClick(index) {
			switch (index) {
				case 0:
					this.currentType = POP
					break
				case 1:
					this.currentType = NEW
					break
				case 2:
					this.currentType = SELL
					break
			}
			console.log(this.currentType);
		}
	}
}